1. Field of the Invention
The invention relates to a peripheral device, an information processing apparatus that is connectable to the peripheral device, and a system that includes them.
2. Related Background Art
In general, when printing is performed in a printing system consisting of a host computer and a printer, which is an example of peripheral device, first some application is executed in the host computer to generate drawing data to be printed such as characters and figures. When printing processing is selected in a menu and the like, the application passes the generated drawing data to an operating system and requests printing processing from it. When it receives a request for printing from the application, the operating system executes a printer driver, which is an example of device drivers corresponding to a printer connected to the host computer, so that the drawing data passed from the application is translated to printing commands executable by the printer. The printer driver receives the drawing data from the operating system and translates it to printing commands in accordance with a procedure defined by the operating system. The printer driver then outputs the printing commands to the connected printer using the communication capability of the operating system.
Printer models differ from each other in paper size they support, the type of ink, method of recording to paper, paper types that can be conveyed, way of conveying paper, therefore differ in method of controlling printing, method of image processing and usable parameters for printer commands. Thus, a printer driver for translating drawing data from an application to control commands for a printer has to be designed and manufactured with sufficient consideration of function features of the printer model. Thus, difference in function features of printers need to be reflected in the control algorithm of printer drivers for them, and even if some printers support the same command system, executable modules for printer drivers are prepared and supplied separately for each of the printers due to difference in programs that execute the control algorithms.
Meanwhile, there is a programming scheme in which a database of function features of printers is prepared, and portions of processing that have to be addressed model by model are executed by a printer driver switching between internal algorithms based on information obtained by referring to the database. In such a case, one executable module for a printer driver can support multiple kinds of printers. In this way, it is also possible to supply one printer driver as a product for multiple kinds of printers that have different function features.
As mentioned above, a printer and a printer driver for controlling the printer thus having a correspondence, a printer driver suitable for a printer in use needs to be installed on the host computer. Installation and uninstallation of a printer driver is performed by a program called an installer.
When a printer driver is installed in a host computer in which another printer driver is already installed, only a file has to be overwritten and there would be no problem if the name of a file for printer driver is not changed. However, a case is possible where the file name of the printer driver must be changed such as when the specification of the printer driver has been changed as to whether it supports only one printer or multiple models of printer. When the file name of the printer driver should be changed, printer drivers that have been previously resided in the host computer need to be deleted.
For such a situation, the function of uninstalling (deleting) a driver can be provided as a function of an installer for a printer driver or can be provided as a dedicated uninstalling program, and a user need to manually perform a cumbersome uninstalling operation by using it.
However, a system may undergo a transition operation that requires a printer driver of a type that supports one model to be changed to one of a type that supports a number of models. In this case, when multiple models of printers are connected to the host computer and used, the user has to know correctly if the printers now connected are supported by a new printer driver capable of supporting multiple models and then selectively delete an existing printer driver for an unnecessary model with a manual operation. Alternatively, a troublesome operation such as deleting all the printer drivers once and then reinstalling some printer drivers may be involved.
Alternatively, a programming scheme is possible that a printer driver switches between internal algorithms based on information it acquired by referring to a database of printer functions in order to perform portions of processing that must be addressed on a model-by-model basis. In this case, one executable module of a printer driver can support multiple kinds of printers. In such a way, one printer driver may be provided as a product for multiple kinds of printers with different function features.
However, upgrading of a printer driver is often performed in order to add a print controlling function to the printer driver or to improve image processing by the printer driver. When a printer driver that can support many types of printer with different functions and features is provided as a product, even if the addition of a function or the improvement is a module relating only to specific models, i.e. a module having effect only on printers of particular models among supported printers, an error of the program for the modified portion could effect control function of other printers if the printer driver has a common executable module. Consequently, even in modifying only a portion that is dependent on a particular model, operation of functions need to be checked for all the printers supported by the printer driver including a printer other than one of a model that should be improved from a viewpoint of quality guarantee for all the products, which leads to a problem of considerable amount of man-hour.
In contrast to the case above, when a printer driver is prepared and supplied for each printer model, only a driver that is suitable for a relevant printer need to be prepared and its operation is checked when a function is added or improvement is made to the printer driver, with a little amount of time and effort required for upgrading a function of a particular model. However, because a printer driver is prepared and supplied for each printer model, there could be a problem that it requires a lot of time and effort when printer driver products for multiple models of printers are released. In addition, there could be such a problem that since an executable files for a printer driver exists for each printer although its program has some processing common to other such programs, more disk area can be occupied by printer drivers when multiple printers are used by one host computer. Also, in a case where an updating module is downloaded over the Internet, a printer driver needs to be downloaded for each printer model, thus taking an extended download time.